Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: interface #29

Merged
merged 28 commits into from
Sep 27, 2023
Merged

refactor: interface #29

merged 28 commits into from
Sep 27, 2023

Conversation

mathisdrn
Copy link
Contributor

No description provided.

internal/infra/fileWriter.go Show resolved Hide resolved
internal/infra/filesReader.go Show resolved Hide resolved
internal/infra/infra_test.go Show resolved Hide resolved
internal/infra/filesReader_test.go Show resolved Hide resolved
internal/infra/infra_test.go Show resolved Hide resolved
pkg/model/metric.go Show resolved Hide resolved
pkg/model/utils.go Show resolved Hide resolved
pkg/rimo/driven_test.go Show resolved Hide resolved
pkg/rimo/driver.go Show resolved Hide resolved
test/suites/testdata/data1/output/data.yaml Outdated Show resolved Hide resolved
@mathisdrn
Copy link
Contributor Author

Prochaines étapes :

  • S'assurer que les tests de analyse_test.go soit reproduit dans driver.go
  • S'assurer que les tests de /io/load_test et /io/export_test soit reproduit dans infra/_test.go
  • Supprimer pkg/analyse; remplacé par driver.go
  • Supprimer pkg/io/: remplacé par infra/
  • Mettre à jour la commande RIMO pour utiliser l'implémentation FilesReader() et FileWriter()
  • Réécrire les benchmarks à partir d'une implémentation -> de analyse_test.go à infra_test.go

@mathisdrn
Copy link
Contributor Author

Bug discovery :
La fonction SetNumericMetric ne gère que les variable float64.

Warn : les implémentations TestReader et LINOReader sont suceptibles d'envoyer des numériques autres que float64()

Solutions :

  • usage des generiques :
    1. à l'échelle de SetNumericMetric pour définir []T avec T contains [int, int64, float64, uint] etc... et faire une assertion de type avec le type générique Numeric
    2. à l'échelle du point d'entrée des données à l'aide de LINO ou d'une fonction pour FilesReader

@mathisdrn
Copy link
Contributor Author

TODO make column values []interface{} given as a pointer within interface

@mathisdrn
Copy link
Contributor Author

mathisdrn commented Aug 31, 2023

INFO : rimo/model.go -> moved to model/model.go again to avoid circular dependencies !

  • metric depends on model.go to know column definitions
  • driver.go depends on metric to call computeMetric()
    => model.go and driver.go cannot be in same package

@CGI-FR CGI-FR deleted a comment from youen Sep 8, 2023
@CGI-FR CGI-FR deleted a comment from youen Sep 8, 2023
@mathisdrn
Copy link
Contributor Author

Très probablement mon dernier commit sur RIMO.

Les interfaces sont implémentés, les tests passent.

À noter : les tests unitaires avec comparaisons ne produisent plus de fichier de sortie (voir TestWriter{} et dernier commit si cela doit être réimplémenter)

Prochaines étapes pour push la MR :

  • supprimer les packages : io, analyse
  • supprimer l'ancienne commande 'rimo analyse'
  • renommer rimo analyse2 par rimo analyse
  • ajouter les licences

@youen youen merged commit cdbbd75 into main Sep 27, 2023
1 check passed
@youen youen deleted the interface branch September 27, 2023 20:43
@youen
Copy link
Collaborator

youen commented Sep 27, 2023

Merci beaucoup @mathisdrn pour ton implication dans le projet RIMO et plus généralement dans la solution LINO !

@mathisdrn
Copy link
Contributor Author

Merci de même @youen pour ton support et tes conseils !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants